#ifndef SETTINGSDIALOG_H
#define SETTINGSDIALOG_H

#include "configdef.h"

#include <QDialog>
#include <QTabWidget>
#include <QFormLayout>
#include <QSpinBox>
#include <QComboBox>
#include <QCheckBox>
#include <QKeySequenceEdit>
#include <QPushButton>

class SettingsDialog : public QDialog
{
	Q_OBJECT

public:
	explicit SettingsDialog(QWidget *parent = nullptr);
    ~SettingsDialog() override = default;

signals:
	void configChanged();

private slots:
	void saveInputMethodConfig();		// @brief 保存输入法配置（双拼方案、候选词数量等）
	void saveGeneralConfig();			// @brief 保存通用配置（语言、开机自启等）
	void saveShortcutConfig();			// @brief 保存快捷键配置（中英文切换、简繁切换等）
	void saveAppearanceConfig();		// @brief 保存外观配置（皮肤、字体大小、透明度等）
	void restoreDefaultConfig();		// @brief 恢复默认配置（所有分类）

private:
	void initUI();
	void initInputMethodTab(QTabWidget* tabWidget);
	void initGeneralTab(QTabWidget* tabWidget);
	void initShortcutTab(QTabWidget* tabWidget);
	void initAppearanceTab(QTabWidget* tabWidget);
	void loadConfigToUI();

private:
	// 输入法配置控件
    QComboBox* m_doublePinyinCombo;    // 双拼方案（搜狗/微软）
    QSpinBox* m_candidateCountSpin;    // 候选词数量（3-9）
    QCheckBox* m_fuzzyPinyinCheck;     // 模糊音开关
    QCheckBox* m_autoAddWordCheck;     // 自动造词开关
    QSpinBox* m_autoAddThresholdSpin;  // 自动造词阈值（2-5）

    // 通用配置控件
    QComboBox* m_languageCombo;        // 语言（zh_CN/en_US）
    QCheckBox* m_autoStartCheck;       // 开机自启开关
    QCheckBox* m_showTrayCheck;        // 托盘图标开关

    // 快捷键配置控件
    QKeySequenceEdit* m_switchLangEdit;    // 中英文切换
    QKeySequenceEdit* m_switchSimpTradEdit;// 简繁切换
    QKeySequenceEdit* m_showNumpadEdit;    // 显示数字面板

    // 外观配置控件
    QComboBox* m_skinCombo;           // 皮肤（默认/深色/简约）
    QSpinBox* m_fontSizeSpin;         // 字体大小（10-20）
    QSpinBox* m_transparencySpin;     // 窗口透明度（50-100）

};



#endif	// SETTINGSDIALOG_H